WorkspacesDisplay removes its dragMonitor in _dragEnd, but
this was never called in when a xdnd drag ended causing
dragMonitors to stack up and handling events multiple times.
Fix that by making sure that _dragEnd is called when xdnd ends.
https://bugzilla.gnome.org/show_bug.cgi?id=644642
this._resetWindowSwitchTimeout();
this._lastHoveredWindow = null;
DND.removeMonitor(this._dragMonitor);
+ this.endItemDrag();
},
_resetWindowSwitchTimeout: function() {
Main.overview.disconnect(this._overviewShownId);
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
+ if (this._inDrag)
+ this._dragEnd();
+
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;